約 5,083,281 件
https://w.atwiki.jp/dng_tiny/pages/36.html
サンプルアタッカー・リリィ ■性別 女性 ■学年 1年生 ■所持武器 ヒノキの剣 ■ステータス 攻撃力:17/防御力:4/体力:5/精神力:3/FS(稼働可能年数):1 ■コスト 2 特殊能力:『サンプルビーム』 効果:体力ダメージ1 範囲+対象:隣接3マス内1マス敵味方全員(前方のみ) 時間:一瞬 非消費制約:敵味方無差別 発動率:99% 成功率:100% 能力原理 持っている剣からビームを発射する キャラクター説明 気が付いたらダンゲロスの戦場に存在している魔人がいる。 彼らは見た目や性格・性別まで様々だが、一様に名がなく「サンプルアタッカー」や「雑魚アタッカー」などと呼ばれている。 彼らがどこからきて何処へ行くのかは誰も知らない。 一説によると戦況を均衡させるために戦場に投入されるクローン魔人の一種だそうだが、真偽のほどは分からない。 この個体は、他の「サンプルアタッカー」と比較して幼い容姿をしている。 その分未熟という事なのだろうが、能力に関しては他の「サンプルアタッカー」と比較して高い傾向にある。 また、他の「サンプルアタッカー」が無機質な印象を持つ無表情なのに対して、この個体は無邪気な笑顔を浮かべることがある。 しかし逆に言うなら「喜び」以外の感情は欠落しているように見受けられる。 要観察対象。
https://w.atwiki.jp/vtubercg/pages/32.html
013_サンプルドラゴン カード名 サンプルドラゴン コスト 4 タイプ ユニット 上段 1~3 パワー60 下段 4~6 パワー80 効果 〔常時〕 戦場にいる間相手の戦場にある0コストのカードを捨て札に置く※0コストとして出てきたカード含む 属性 モンスター、竜 関連ページ 第一弾 モンスター 竜 〔常時〕 216_龍雅 273_龍雅 リンク Youtubeチャンネル
https://w.atwiki.jp/blendr/pages/27.html
Blender 3D CGパーフェクトバイブル ―完全無料ですべてができる3DCGソフトの最高峰! (100%ムックシリーズ) posted with amazlet at 11.11.08 晋遊舎 (2011-01-27) 売り上げランキング 69267 Amazon.co.jp で詳細を見る Blender 2.5マスターブック posted with amazlet at 11.11.08 藤堂+ カットシステム 売り上げランキング 23640 Amazon.co.jp で詳細を見る Blenderスタートアップガイド -オープンソースで作る3Dモデル、アニメーション、ゲーム- posted with amazlet at 11.11.08 ランス・フラベル (Lance Flavell) ボーンデジタル 売り上げランキング 48147 Amazon.co.jp で詳細を見る Blenderビギナーズバイブル posted with amazlet at 11.11.08 田崎 進一 毎日コミュニケーションズ 売り上げランキング 512733 Amazon.co.jp で詳細を見る Character Development in Blender 2.5 posted with amazlet at 11.11.08 Jonathan Williamson Course Technology Ptr 売り上げランキング 9628 Amazon.co.jp で詳細を見る マスタリングBlender posted with amazlet at 11.11.08 Tony Mullen アスキー・メディアワークス 売り上げランキング 240571 Amazon.co.jp で詳細を見る はじめてのBlender (I・O BOOKS) posted with amazlet at 11.11.08 山崎 聡 工学社 売り上げランキング 239873 Amazon.co.jp で詳細を見る 物理シミュレーションBlender posted with amazlet at 11.11.08 トニー・マレン アスキー・メディアワークス 売り上げランキング 292481 Amazon.co.jp で詳細を見る 3Dキャラクタアニメーション Blender(DVD付) posted with amazlet at 11.11.08 トニー・マレン アスキー 売り上げランキング 113657 Amazon.co.jp で詳細を見る Introducing Character Animation with Blender posted with amazlet at 11.11.08 Tony Mullen Sybex 売り上げランキング 13330 Amazon.co.jp で詳細を見る Blender Advanced Guide posted with amazlet at 11.11.08 田崎 進一 斉藤 寛 中村 達也 オーム社 売り上げランキング 516328 Amazon.co.jp で詳細を見る BLENDERガイドブック posted with amazlet at 11.11.08 斉藤 寛 中村 達也 エクシードプレス 売り上げランキング 616981 Amazon.co.jp で詳細を見る Blenderでチャレンジ!はじめての3DCG―3DCGの作成はすべてオマカセ3Dアニメーションだって作れちゃう! (100%ムックシリーズ) posted with amazlet at 11.11.08 晋遊舎 売り上げランキング 639134 Amazon.co.jp で詳細を見る はじめてのBlender2.5―「初心者」から「プロ」まで使える、フリーの3D‐CGソフト (I・O BOOKS) posted with amazlet at 11.11.08 山崎 聡 工学社 売り上げランキング 138289 Amazon.co.jp で詳細を見る Blender 2.5 Materials and Textures Cookbook posted with amazlet at 11.11.08 Colin Litster Packt Publishing 売り上げランキング 108574 Amazon.co.jp で詳細を見る キャラクターをつくろう! 3DCG日和。 posted with amazlet at 11.11.08 ISAO ビー・エヌ・エヌ新社 売り上げランキング 29492 Amazon.co.jp で詳細を見る ゲーム制作者になるための3Dグラフィックス技術 posted with amazlet at 11.11.08 西川 善司 インプレスジャパン 売り上げランキング 27805 Amazon.co.jp で詳細を見る Blender 3D, Architecture, Buildings, and Scenery Create Photorealistic 3d Architedftural Visualizations of Buildings, Interiors, and Environmental Scenery posted with amazlet at 11.11.08 Allan Brito Packt Publishing 売り上げランキング 139245 Amazon.co.jp で詳細を見る ローポリ スーパーテクニック posted with amazlet at 11.11.08 ntny ソフトバンククリエイティブ 売り上げランキング 16084 Amazon.co.jp で詳細を見る
https://w.atwiki.jp/marutamaotaban/pages/20.html
編集用タグサンプル 文字サイズ あああ 文字色 あああ 文字背景色 あああ 編集を押してタグをコピーして使ってください
https://w.atwiki.jp/blender2chwiki/pages/52.html
Armature3DビューObjectモード Editモード poseモード ArmatureはメッシュをBoneに連動させてアニメーションさせるオブジェクトです。 Armatureを優先的に親にして使います。 メッシュとboneを連動させるには、同じ名前の頂点グループとボーンを用意します。 ボーンの数が少なければそれほどではありませんが、人体やクリーチャー1体分になると何10本、 下手すると100本以上のボーンと同じ頂点グループを作る必要があります。 幸い、Blenderにはボーンと同じ名前の頂点グループを作る機能があります。 メッシュオブジェクト→Armatureの順番に右クリックで選択して Ctrl+PでArmatureがメッシュの親になり、頂点グループを作るかどうか聞かれます。 グループ名のみ:メッシュにboneと同じ名前の頂点グループを作ります。ただし中身は空っぽです。 エンベローブから作成:多分頂点を登録するんだろうけどよくわからん ボーンヒートから作成:--- 頂点グループを作成したら、メッシュをEDITモードにして頂点をそれぞれのグループに登録します。 これでやっとボーンでメッシュを動かす事が出来ます。 ━一連の流れ━ Armature側のboneと同じ名前の頂点グループをメッシュ側に作る。 それぞれの頂点グループ(=Bone)で動かしたい頂点を適用する ポーズモードでくねくねさせて遊ぶ Armature3Dビュー Objectモード 他のObjectとリンクさせたりします ArmatureをObjectに適用するには、Object(子)>Armature(親)の順で選択してCtrl+P>Armatureを選びます Editモード ボーンを組み立てるモードです。これが基本姿勢になります。 編集中はメッシュと同じ基本操作が使えます。 Eキー:頂点押し出し。 Wキー:スペシャルメニュー。 Fキー:頂点間接続。 GRS:グリッド、ロール、スケール。XYZで軸固定。 Nキーでボーンのプロパティが出ます。 選択中のボーンは黄色、非選択はピンク、親子間のボーンは点線で繋がれます。 親は複数の子を持つ事が出来ますが、子は複数の親を持つ事は出来ません。 同様に、ループ状の親子間を作ることは出来ません。 ArmatureX-Axis Mirror:左右対称で作ったboneを同時に動かします。 X-Ray:ArmatureのObjectを最前面に表示します。メッシュで隠れる場合に有効。 Auto IK:Editモードじゃ使いません。PoseモードでBoneを動かすときにチェーンが作られます。 display options:Armatureの表示レイヤーです。3DViewとは別扱いになります。 Octahedron/Stick/B-Bone/Envelope:4種類のbone形状を選択。 Axes:座標軸を表示。 Name:Bone名を表示。 Shapes: Colors: Deform Options:デフォームする条件の設定します。Vertex Groups:頂点Groupによる変形をします。 Envelopes:Envelopeによる変形をします。 Quaternion:回転デフォームらしい。 Rest position:Poseをデフォルト状態に戻します。 Delay Deform:Poseモードで、ボーン操作中は変形を表示しません。 B-Bone Rest: Armature boneBO bone名 Child of:親となるBoneを選びます。 Con:Top/Taleを連結させ同時に動かします。 Segm:Boneを分割させます。 Dist:影響範囲。 Weight:boneの影響度。 poseモード ポーズモードは姿勢をフレームに登録するモードですが、 それ以上に制限やIK等のロジックを組み込む事が重要になってきます。 IキーでIPOウィンドウのポーズ枠に選択したボーンの回転や移動が登録されます。 ボタンに若干変化があります Link And Materials Armature bone Visualisations Constrain
https://w.atwiki.jp/flex_framework/pages/21.html
PureMVCの表現領域であるView層について記述していきます。 この層で利用されるクラスは以下の通りです。 MXML Mediatorクラス これらについても概要は既に述べていますので、 サンプルを見てみましょう。 まずはMXMLファイルからです。 このMXMLファイルは先に記述したMXMLファイルの中ではなく、 Viewコンポーネントとして作成したMXMLファイルです。 先に記述されたMXMLファイルの解説の中の⑤にあたります。 「CalclationPanel.mxml」 ?xml version="1.0" encoding="utf-8"? mx Panel xmlns mx="http //www.adobe.com/2006/mxml" ・・・・・・・・・・・・・・・・・・・・・・・・・・・・① layout="vertical" width="400" height="300" creationComplete="{this.init()}" !-- このUIコンポーネントで発生するすべてのイベントをここで列挙 -- mx Metadata ・・・・・・・・・・・・・・・・・・・・・・・・・・・・② [Event( click1 )] [Event( click2 )] [Event( click3 )] [Event( click4 )] [Event( click5 )] [Event( click6 )] [Event( click7 )] [Event( click8 )] [Event( click9 )] [Event( click0 )] [Event( clickPlus )] [Event( clickMinus )] [Event( clickEqual )] [Event( clickClear )] /mx Metadata mx Script ![CDATA[ import example.model.vo.CalclationVO; // このUIコンポーネントで発生するすべてのイベントの文字列を列挙(上のMetadataタグとここの文字列の内容は必ず一緒になる) public static const click1 String = "click1"; ・・・・・・・・・・・・・・・・・・・③ public static const click2 String = "click2"; public static const click3 String = "click3"; public static const click4 String = "click4"; public static const click5 String = "click5"; public static const click6 String = "click6"; public static const click7 String = "click7"; public static const click8 String = "click8"; public static const click9 String = "click9"; public static const click0 String = "click0"; public static const clickPlus String = "clickPlus"; public static const clickMinus String = "clickMinus"; public static const clickEqual String = "clickEqual"; public static const clickClear String = "clickClear"; // 画面表示用VO [Bindable] public var calcVO CalclationVO; ・・・・・・・・・・・・・・・・・・・・・・④ /** * 初期化処理 */ private function init() void ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・⑤ { calcVO = new CalclationVO(); ・・・・・・・・・・・・・・・・・・・・・・・・・・⑥ } ]] /mx Script mx TextInput id="txtOutput" editable="false" text="{calcVO.calcString}" / ・・・・・・・・・・・・・・・⑦ mx HBox mx Button id="btn1" label="1" click="{dispatchEvent(new Event( click1 ) )}" / ・・・・・・・・・・・・・・・・・⑧ mx Button id="btn2" label="2" click="{dispatchEvent(new Event( click2 ) )}" / mx Button id="btn3" label="3" click="{dispatchEvent(new Event( click3 ) )}" / mx Button id="btnPlus" label="+" click="{dispatchEvent(new Event( clickPlus ) )}" / /mx HBox mx HBox mx Button id="btn4" label="4" click="{dispatchEvent(new Event( click4 ) )}" / mx Button id="btn5" label="5" click="{dispatchEvent(new Event( click5 ) )}" / mx Button id="btn6" label="6" click="{dispatchEvent(new Event( click6 ) )}" / mx Button id="btnMinus" label="-" click="{dispatchEvent(new Event( clickMinus ) )}" / /mx HBox mx HBox mx Button id="btn7" label="7" click="{dispatchEvent(new Event( click7 ) )}" / mx Button id="btn8" label="8" click="{dispatchEvent(new Event( click8 ) )}" / mx Button id="btn9" label="9" click="{dispatchEvent(new Event( click9 ) )}" / mx Button id="btnEqual" label="=" click="{dispatchEvent(new Event( clickEqual ) )}" / /mx HBox mx HBox mx Button id="btn0" label="0" click="{dispatchEvent(new Event( click0 ) )}" / mx Button id="btnClear" label="C" click="{dispatchEvent(new Event( clickClear ) )}" / /mx HBox /mx Panel ①Panelタグ このタグも説明の必要はないでしょう。 Flexのパネルタグです。 このタグのプロパティとして注目すべきは以下の点です。 layout="vertical" レイアウトについてです。 Verticalの設定なので「縦並び」ということですね。 取り立てて、大きく扱うプロパティではないのですが、Absorute(絶対位置)では都合が悪かったので、Verticalにしてみました。 width="400" height="300" このコンポーネントの大きさです。 縦400ピクセル、横300ピクセルです。 creationComplete="{this.init()}" ②Metadataタグ このコンポーネントがもつイベントのすべてを記述しています。 このタグの中に宣言することにより、このコンポーネントが当該イベントを送出することができるようになります。 ここでは各ボタンに対応するイベントを設定しました。 ボタン1を押したら「click1」イベントが起きるということです。 このイベントに対応するハンドラは次に出てくるMediatorクラスでハンドルされます。 ③public static const click1 String = "click1"; イベントの名称です。 Metadataタグの中で記述されたイベント名をすべてpublic static constとして宣言し、 送出されたイベント名を特定できるようにしています。 単純にいえば public static const click1 = [Event( click1 )] という意味です。 これは後述される⑧とMediatorクラスで利用されています。 ④public var calcVO CalclationVO; このクラスが保持するインスタンス変数の宣言です。 VOとあるとおり、前回にありましたValueObjectのことで、 ここでは計算結果を表示するためのBindableな変数として扱っています。 このクラスもまた、Mediatorクラスに出てきます。 ⑤creationComplete時に呼び出される初期化メソッド ここでは「init」としていますが、functionの名称は何でもOKです(初期化を示す単語であれば尚良しです)。 ここで重要なのは次の④のことを実行することです。 ⑥calcVO = new CalclationVO(); インスタンス変数であるcalcVOをインスタンス化しています。 ここでインスタンス化しないとこのcalcVO変数は永遠にインスタンス化されません (誰がインスタンス化していいのかわからない)ので。 ⑦ mx TextInput id="txtOutput" editable="false" text="{calcVO.calcString}" / TextInputコンポーネントです。 ここではeditableプロパティをfalseとすることで、ユーザー入力をしないようにしています。 計算機なので、直接入力してもらうと何かと不便なので、こうしています。 またtextプロパティではインスタンス変数であるcalcVOのcalcStringというプロパティを参照しています。 ここで参照することにより、calcVOのcalcStringプロパティの中身がTextInputコンポーネントに表示されるわけです。 ⑧ mx Button id="btn1" label="1" click="{dispatchEvent(new Event( click1 ) )}" / Buttonコンポーネントです。 いわゆるイベントを送出するためのものですね。 ご覧のようにclickイベントでは dispatchEvent(new Event( click1 ) ) としてclick1というイベントを送出しています。 これは②で述べたMetadataタグの中で指定している [Event( click1 )] と関連付けされ、このCalclationPanel.mxmlという ViewコンポーネントはMetadataタグに指定された イベントを発生させるということがわかるでしょう。 さて、ここまでではMXMLファイルの解説(いわゆるViewコンポーネント)の解説をしてきました。 このMXMLが画面上に表示される直接的なインターフェースを表していることになります。 そして、このMXMLにMetadataとしてイベントが記述されていることがわかるでしょう。 CairngormではイベントはすべてFrontController(ApplicationController)と呼ばれている部分に 集中していました。 MXMLの中でMetadataタグを使ってのイベント記述は一切なく、 すべてがFrontControllerに集中していたわけです。 集中管理できるのは利点ですが、どのViewがどんなイベントを起こしているのかわからなくなってしまうことが多く、 この点を改善したのがPureMVCといえるのではないでしょうか。 MXMLを見ればそのコンポーネントがどんなイベントを起こすのかすぐにわかるというのは大きな利点ですね。 次にMediatorクラスです。 「CalclationPanelMediator.as」 package example.view { import org.puremvc.patterns.mediator.Mediator; import org.puremvc.interfaces.INotification; import org.puremvc.interfaces.IMediator; import example.model.CalclationProxy; import example.view.components.CalclationPanel; import flash.events.Event; import example.ApplicationFacade; import example.model.vo.CalclationVO; public class CalclationPanelMediator extends Mediator implements IMediator ・・・・・・・・・・・・・・・・・・① { private var proxy CalclationProxy; ・・・・・・・・・・・・・・・・・・・② public static const NAME String = "CalclationPanelMediator"; ・・・・・・・・・・・・・・・・・・③ /** * コンストラクタ * ここではこのMediatorクラスで発生するイベントのリスナを登録 */ public function CalclationPanelMediator(view Object) void ・・・・・・・・・・・・・・・・・④ { // 親クラスのコンストラクタの呼び出し super(view); ・・・・・・・・・・・・・・・・・・⑤ // ハンドラの登録 calclationForm.addEventListener(CalclationPanel.click0,onClick); ・・・・・・・・・・・・・・・・・⑥ calclationForm.addEventListener(CalclationPanel.click1,onClick); calclationForm.addEventListener(CalclationPanel.click2,onClick); calclationForm.addEventListener(CalclationPanel.click3,onClick); calclationForm.addEventListener(CalclationPanel.click4,onClick); calclationForm.addEventListener(CalclationPanel.click5,onClick); calclationForm.addEventListener(CalclationPanel.click6,onClick); calclationForm.addEventListener(CalclationPanel.click7,onClick); calclationForm.addEventListener(CalclationPanel.click8,onClick); calclationForm.addEventListener(CalclationPanel.click9,onClick); calclationForm.addEventListener(CalclationPanel.clickMinus,onClick); calclationForm.addEventListener(CalclationPanel.clickPlus,onClick); calclationForm.addEventListener(CalclationPanel.clickClear,onClick); calclationForm.addEventListener(CalclationPanel.clickEqual,onClick); // facadeインスタンスに登録されたproxyクラス(ロジック実装クラス)を取得 proxy = facade.retrieveProxy( CalclationProxy.NAME ) as CalclationProxy; ・・・・・・・・・・・・・・⑦ } /** * プロパティアクセサ */ public function get calclationForm() CalclationPanel ・・・・・・・・・・・・・・・・⑧ { return viewComponent as CalclationPanel; ・・・・・・・・・・・・・⑨ } /** * イベントハンドラ * ここではCalclationPanelのイベントであるclick0などの * イベントを解析している */ private function onClick(e Event) void ・・・・・・・・・・・・・・10 { // VIEWコンポーネント(プロパティアクセサ)からVOを取得 var calc CalclationVO = calclationForm.calcVO; ・・・・・・・・・・・・・・11 // イベントタイプにより処理の振り分け switch( e.type ) ・・・・・・・・・・・12 { case CalclationPanel.click0 ・・・・・・・・・・・・13 proxy.setNumber("0"); ・・・・・・・・・・・・14 sendNotification(ApplicationFacade.APP_NUMBER_CLICK, calc); ・・・・・・・・・・・・15 break; case CalclationPanel.click1 proxy.setNumber("1"); sendNotification(ApplicationFacade.APP_NUMBER_CLICK, calc); break; case CalclationPanel.click2 proxy.setNumber("2"); sendNotification(ApplicationFacade.APP_NUMBER_CLICK, calc); break; case CalclationPanel.click3 proxy.setNumber("3"); sendNotification(ApplicationFacade.APP_NUMBER_CLICK, calc); break; case CalclationPanel.click4 proxy.setNumber("4"); sendNotification(ApplicationFacade.APP_NUMBER_CLICK, calc); break; case CalclationPanel.click5 proxy.setNumber("5"); sendNotification(ApplicationFacade.APP_NUMBER_CLICK, calc); break; case CalclationPanel.click6 proxy.setNumber("6"); sendNotification(ApplicationFacade.APP_NUMBER_CLICK, calc); break; case CalclationPanel.click7 proxy.setNumber("7"); sendNotification(ApplicationFacade.APP_NUMBER_CLICK, calc); break; case CalclationPanel.click8 proxy.setNumber("8"); sendNotification(ApplicationFacade.APP_NUMBER_CLICK, calc); break; case CalclationPanel.click9 proxy.setNumber("9"); sendNotification(ApplicationFacade.APP_NUMBER_CLICK, calc); break; case CalclationPanel.clickMinus sendNotification(ApplicationFacade.APP_MINUS_CLICK, calc); break; case CalclationPanel.clickPlus sendNotification(ApplicationFacade.APP_PLUS_CLICK, calc); break; case CalclationPanel.clickClear sendNotification(ApplicationFacade.APP_CLEAR_CLICK, calc); break; case CalclationPanel.clickEqual sendNotification(ApplicationFacade.APP_EQUAL_CLICK, calc); break; } } /** * このMediatorクラスで発生するイベントの登録をする */ override public function listNotificationInterests() Array ・・・・・・・・・・・・・・16 { // ここに列挙された文字列をこのクラスの中ではハンドルすることにより、 // 処理の振り分けを行う。 return [ ・・・・・・・・・・・・・・・17 ApplicationFacade.APP_NUMBER_CLICK, ApplicationFacade.APP_PLUS_CLICK, ApplicationFacade.APP_MINUS_CLICK, ApplicationFacade.APP_CLEAR_CLICK, ApplicationFacade.APP_EQUAL_CLICK ]; } /** * listNotificationInterestsメソッドで登録された文字列を * 実際に処理に振り分ける */ override public function handleNotification(notification INotification) void ・・・・・・・・・・・・・・・・18 { switch ( notification.getName() ) ・・・・・・・・・・・・・・19 { case ApplicationFacade.APP_NUMBER_CLICK ・・・・・・・・・・・・・・・20 // 画面に表示している情報(VO)の取得 calclationForm.calcVO = notification.getBody() as CalclationVO; // 画面に表示している情報の書き換え calclationForm.calcVO.calcString = proxy.calcString; break; case ApplicationFacade.APP_PLUS_CLICK proxy.plusNumber(); break; case ApplicationFacade.APP_MINUS_CLICK proxy.minusNumber(); break; case ApplicationFacade.APP_CLEAR_CLICK proxy.clear(); // 画面に表示している情報の書き換え calclationForm.calcVO.calcString = proxy.calcString; break; case ApplicationFacade.APP_EQUAL_CLICK proxy.calcEqual(); // 画面に表示している情報の書き換え calclationForm.calcVO.calcString = proxy.calcString; break; } } } } ①public class CalclationPanelMediator extends Mediator implements IMediator Mediatorクラスの宣言部。 ここではMediatorクラスの継承とIMediatorインターフェースの実装を宣言しています。 Mediatorクラス(IMediatorインターフェース)にはhandleNotificationというメソッドを持っています。 後述しますが、このメソッドをオーバーライドすることにより、ビジネスロジックとの橋渡しをします。 またこのクラスがハンドルするイベントを登録するためのメソッドであるlistNotificationInterestsというメソッドもあります。 これもオーバーライドすることにより、このMediatorクラスがハンドルできるイベントを登録するわけです。 ②private var proxy CalclationProxy; ビジネスロジックであるProxyクラスのインスタンスを保持するための変数です。 このMediatorクラスの中で共通的にProxyクラスを使用したいためにインスタンス変数としています。 ③public static const NAME String = "CalclationPanelMediator"; Facadeクラスに登録するための名前をここで定義しています。 ここで定義された名称でFaçadeクラスの中にインスタンスが生成されます。 よって、この名前はアプリケーションの中でユニークになっている必要があります。 ④public function CalclationPanelMediator(view Object) void コンストラクタです。 引数としてview Objectを受け取るようになっていますが、 このViewの実態はViewコンポーネントそのものです。 今回の計算機サンプルでは上記MXMLの解説でお話した 「CalclationPanel.mxml」のインスタンスが対象のViewコンポーネントになります。 ⑤super(view); 親クラスのコンストラクタを呼び出しています。 ここでは上記④のコンストラクタで指定されたViewコンポーネントを引数として渡しています。 これを実行することで親であるMediatorクラスのインスタンス変数「viewComponent」に設定しています。 このview(さらにいえばCalclationPanel.mxmlのインスタンス)が設定されます。 以降、このクラスの中ではviewComponentというインスタンス変数で Viewコンポーネントを扱っていきます。 が、直接的に扱うのではなくGetterメソッドを用いて利用しています(後述⑧)。 ⑥calclationForm.addEventListener(CalclationPanel.click0,onClick); イベントを登録しています。 ここでいうcalclationFormというのは後述⑧で示している通り、 実態はviewComponentというインスタンス変数です。 これは上記⑤でも出てきましたね。 そうです。CalclationPanel.mxmlのインスタンスをさしています。 ここでこのCalclationPanel.mxmlが送出するイベントのリスナとハンドラを登録しているわけです。 ここまで来てようやくCalclationPanel.mxmlで設定していた送出イベントの名前定義を利用できるわけです。 しかし、MXMLが送出するイベント名を使って、リスナとハンドラを登録しているわけですから、 Cairngormのように「(FrontControllerに)イベントがいっぱいでよくわからない」ということはないと思います。 このMediatorクラスでイベントを登録しているわけですから。 ⑦proxy = facade.retrieveProxy( CalclationProxy.NAME ) as CalclationProxy; ここではこの中で利用するProxyクラスを取得しています。 Proxyクラスはビジネスロジックを実装しているクラスであることは前に述べました。 このProxyクラスのインスタンスを取得することにより、 Mediatorクラスの中で自由に利用できるようになります。 ⑧public function get calclationForm() CalclationPanel Getterメソッドです。後述の⑨を返却しています。 ⑨return viewComponent as CalclationPanel Mediatorクラスのインスタンス変数であるviewComponentのインスタンスをCalclationPanelのインスタンスにキャストして 返却しています。 viewComponentというインスタンスをそのまま扱わないのは、viewComponentというのはオブジェクトであり、 CalclationPanelというキャストをしてあげなければ、機能として何もないのと同じだからです。 この辺り、 var obj Object = new Object(); とプログラムを書いてみて、 この「obj」という変数のプロパティやイベント、メソッドを見てみるとよくわかると思います。 (EclipseやFlexBuilderではヘルプがでますので。そうでない方はFlexAPIドキュメントのObjectクラスをご覧ください。) ⑩private function onClick(e Event) void 上記⑥で登録していたハンドラです。 CalclationPanel.mxmlで起こったイベントを受け取るハンドラですね。 ⑪var calc CalclationVO = calclationForm.calcVO ここではValueObjectであるCalclationVOを取得しています。 ValueObjectクラスは画面に値を表示する際の器として使用しています。 ⑫switch( e.type ) イベントタイプの判定です。 ⑬case CalclationPanel.click0 ⑫で判定するケース文ですね。 ここではイベントタイプがclick0であったら、このCase文の中身を実行するようになっています。 Case文は多々ありますが、やっていることは基本的に同じなので、説明は省略しています。 ⑭proxy.setNumber("0"); ビジネスロジックを持つproxyのsetNumberというメソッドを呼び出して、 proxyに入力された(ここではクリックされた)番号を通知しています。 ここで入力された値を設定しないと、設定する機会がないので、 このタイミングで設定しています。 このときの「ボタンを押した」というイベントはこの中でしか取れないからです。 ⑮sendNotification(ApplicationFacade.APP_NUMBER_CLICK, calc); イベント登録用クラスであるNotificationをイベントとして送出しているメソッドです。 ここで送出されたNotificationイベントは後述⑰で登録されたイベントに対応しており、 これを⑱のメソッドhandleNotificationでハンドルします。 ここでNotificationを起こすことにより、ビジネスロジックとの完全分離を目指しているわけです。 今回の計算機ではビジネスロジックはたいしたことをやっていませんのであまり必要性は感じないかと思われますが。 ⑯override public function listNotificationInterests() Array MediatorクラスのメソッドlistNotificationInterestsをオーバーライドしています。 このメソッドでこのMediatorクラスが起こすNotificationイベントを登録します。 登録の仕方は後述の⑰の通りです。 このメソッドは親のコンストラクタの中で自動的に呼ばれます。 このメソッドが定義されていないと、 ⑮で呼び出しているメソッド「sendNotification」は意味がないので、きちんと定義しましょう。 ⑰return [ApplicationFacade.APP_NUMBER_CLICK, ApplicationFacade.APP_PLUS_CLICK, ApplicationFacade.APP_MINUS_CLICK, ApplicationFacade.APP_CLEAR_CLICK, ApplicationFacade.APP_EQUAL_CLICK] このMediatorクラスが起こすNotificationイベントをArray型として返却しています。 ⑱override public function handleNotification(notification INotification) void ⑮で送出させたNotificationイベントのハンドラです。 ⑯、⑰で設定したイベントのハンドラがこのメソッドになります。 この中でビジネスロジックを実装しています。 というよりはProxyクラスの呼び出しをコントロールしているといったほうが正しいでしょう。 今回は計算機なのでたいしたことはやっていませんが、 Proxyクラスのメソッドを使っての計算やValueObjectへの値の設定はここでやっていることがお分かりいただけると思います。 ⑲switch ( notification.getName() ) 送出されたNotificationの名前の判定です。 ⑮で送出されたものの名前を判定しています。 ⑳case ApplicationFacade.APP_NUMBER_CLICK ⑮で送出された名前のCase文ですね。 このCase文の中でProxyクラスの呼び出しやValueObjectへの値の設定などを行っています。 ビジネスロジックというよりはProxyのコントロールとValueObjectの設定を主にやるところですね。 実際のビジネスロジックはProxyというクラスがいるわけですから、 ここではそのコントロールと画面に表示する部分のValueObjectの制御だけを行えばいいのです。 ここでサンプルの解説を終わります。 ここまで来て、結局、どうやって流れるの? っていう素朴な疑問について、曖昧なままよくわかりませんので、 図化してみました。 PureMVCの初回起動時は動きは以下の図の通りです。 サンプルで利用した計算機アプリを元にしていますので、Commandなどの動きには ほかにバリエーションがあるかもしれませんので、とりあえずはこんな動きなんだということでお願いします。 元の大きな画像はこちらから PureMVCのイベント駆動時の動きは以下の図の通りです。 こちらもサンプルの計算機を元におしていますので、あしからず。 いかがでしたでしょうか? ここまでお送りしましたPureMVCについてをサンプルを交えて解説してきましたが、 全体の俯瞰図は以下の通りです。 元の大きな画像はこちらから かなり大きいです、ごめんなさい。 大体の概念はMVCと変わりないことがお分かりいただけたかと思います。 ただFlexはイベント駆動型のアプリケーションなので、 どうしてもイベント中心になりがちですが、その辺りを解決してくれるのがPureMVCではないでしょうか。 まだまだいろいろFrameworkはあると思いますので、折を見て触れていきたいと思います。 とりあえず、今回はここまでです。 お付き合いいただきありがとうございました。
https://w.atwiki.jp/omosiroiviptrpg/pages/33.html
テストプレイヤーが決める事。 以下のサンプルキャラの中から一つを選択。 名前と性格、外見的な特徴を考えて簡潔に表記する。 例) 名前:ヴィッパー 性格:熱血漢で好奇心が旺盛、口数が多い命知らず 特徴:二十歳前半で経験の浅い駆け出しの冒険者、田舎者で筋肉質 【戦士】 心技体:2/2/5 耐久値:11 片手斧:携行性と威力に優れた斧 短槍:広く普及した標準的な短槍 円盾 胴鎧 【技能】「保護」:味方を一人選び、攻撃を代わりに引き受ける。 (以下、テストプレイ用キャラテンプレート) 名前: 性格: 特徴: 【戦士】 心技体:2/2/5 耐久値:11 片手斧:携行性と威力に優れた斧 短槍:広く普及した標準的な短槍 円盾 板金鎧 【技能】「保護」:味方を一人選び、攻撃を代わりに引き受ける。 解説:高い攻撃力と防御力を持ち、常に戦闘の主役です。 積極的に先陣を切ることで、弱い味方を守りましょう。 名前: 性格: 特徴: 【野伏】 心技体:4/4/1 耐久値:8 長剣:扱いやすい細身の長剣 皮鎧 篭手 薬草:消費する事で耐久値回復 【技能】「緊急回避」:発動した罠を無効化する。 解説:非力なのは否めませんが、その注意力が優れています。 罠や待ち伏せに注意して、皆を導く案内人に向きます。 名前: 性格: 特徴: 【射手】 心技体:0/5/4 耐久値:6 短弓:高い威力を誇る狩猟用の弓 皮鎧 帽子 薬草:消費する事で耐久値回復 【技能】「精密狙撃」:命中率を上げる 解説:警戒力に劣りますが、その射程は長大です。 後方から射る事で、味方の援護に回りましょう。 名前: 性格: 特徴: 【芸術家】 耐久値:4 心技体: 3/3/3 十字弓:攻撃前に装填の必要性、絶大な威力 筆:人を刺すには充分な硬度 外套 薬草:消費する事で耐久値回復 【技能】「博識」:有利な情報を得る 解説:軍事技術に先見の明を持ち、最新の武器を持っています。 故に即応性には劣りますが、その威力は絶大です。 ※ 耐久値は標準値3に装甲値を加算済みです。 以下詳細、自分のキャラについてだけは絶対に把握しておきましょう。疑問があれば本スレで質問も可。 名前: 職業:【戦士】 心技体:2/2/5 武器 名前:片手斧 威力:5 目標:9(体) 名前:短槍 威力:4 目標:8(体) 防具 円盾:回避(1) 板金鎧:装甲(8) ※ 普通のキャラ、硬めにしたので回復アイテムなし 名前: 職業:【野伏】 心技体:4/4/1 武器 名前:長剣 威力:4 目標:7(技) 効果: 防具 皮鎧:装甲(3) 篭手:装甲(2) 道具 薬草:回復(5)、消費 ※ 攻撃の命中判定を「技」で行う、警戒は心で判定? 名前: 職業:【射手】 心技体: 0/5/4 武器 名前:短弓 威力:2 目標:8(技) 効果:先制攻撃 防具 皮鎧:装甲(2) 帽子:精度(1) 道具 薬草:回復(5)、消費 ※ 先制攻撃テスト用、攻撃判定は「技」、帽子で目標値弄るのを忘れないで 名前: 職業:【芸術家】 心技体: 3/3/3 武器 名前:十字弓 威力:8 目標:8(技+体) 効果:装填(1)、先制攻撃 名前:筆 威力:2 目標:10(技) 防具 外套:装甲(1) 道具 薬草:回復(5)、消費 ※ 完全にテスト用、命中判定は技と体の両方なんでよく当たる、装填が要るので2ターンに1回のみ攻撃 用語解説 回避:自己への攻撃の目標値に加算する、自己への攻撃が当たり難くなる 装甲:自己の耐久値の最大値を増加する 回復:減った耐久値を回復、耐久値の最大値を越える事は無い 先制攻撃:命中判定処理を先に行う 精度:自己の攻撃の目標値から減算、自己の判定時にボーナス 装填:攻撃宣言前に装填宣言を行う必要がある。装填宣言をした状況では、自分への攻撃は必中する。 装填宣言をした状態で耐久値が減少した場合、装填は失敗し、再度行わなくてはならない。 消費:使用を宣言した場合、消滅する 【技能】に関しては余りガチガチに決めてない 使用は1セッションに1回を想定
https://w.atwiki.jp/chapati4it/pages/139.html
帳票サンプル JasperReports5.0サンプル サンプルの実行 一番簡単なPDF出力 テンプレートにデータソースとパラメータ設定してPDF出力 CSVデータソースからPDF出力 PDFに動的に画像を埋め込み グループ分けと集計
https://w.atwiki.jp/kia_product/pages/27.html
近況報告 2009/09/04 謎の強制終了は、どうやらBGMの再生(特にoggファイル?)のときに起こっているよう。 ストリーミング再生に対応する必要あり?? ⇒ちょっと、これは残課題として対応を先延ばしにする。 とりあえず、RIFF-mp3で対応する。(いずれoggにしたい。) 上記を持って完成とし、説明書を書く。 数人の知り合いに送信して、βテストを行う予定。 2009/08/29 謎の強制終了は、試した2つの環境(自分宅、実家)で再現性がかなり「まれ」なので、置いておく。 あと、旧ライブラリでコンパイルすることで、新しいDirectXをインストールしてもらわないとダメな可能性が減少した。 暗号化ツールの改訂を行ったあと、暗号化も含めてゲームを完成状態にもっていく。(曲とムービー以外は暗号化される) そして、ようやく説明書書きます! サンプルゲーム 鋭意制作中!! ○対応環境(確認済み) 2005年のDirectX9以上インストールされたWindowsXP (Vistaは日本語入力が正常動作しない可能性あり。未検証。) XP-SP3なら確実動作。SP2はDirectXの更新が必要? OPムービー(wmv) 簡易仕様書 実行形式ファイル ※最新のDirectXのランタイムが必要です。…なんとかしたい。 ⇒2005年のSDKでコンパイルする事で解決! ソースファイル サンプル、かなりできてきました。もしよかったらやってみて。 -- 孝和 (2009-08-11 02 19 44) 操作説明を兼ねたOPムービーできた!ムービー作成、楽しかったw -- 孝和 (2009-08-28 02 42 24) 名前 コメント
https://w.atwiki.jp/maid_kikaku/pages/234.html
(投稿者:トーリス・ガリ) パーソナリティ マイナ トリア ライラ リリー ふつおたコーナー・サンプルー! うまくいったーw タイトルコールちゃんと揃いましたねw 異様に合わなかったもんね、リハの最初の時w うんw; ふつおたコーナー・サンプルーって言うだけなのにねw ほんばんに強いのだー それはあるかもw そうですね、わたくしなんて練習の方が緊張してしまってw; へー、意外。けっこう落ち着いてるように見えた ライラはぜんぜんキンチョーしなかったぞー! すごいだろー! うん、すごいね (受け流した……!) では早速お便りご紹介しますけどよろしいですか? はーい P.N.吉田of吉夫:最近市販の焼きそばが油っこくて食べられなくなってきました。さっぱりしたものっておいしいですね やきそばってなに? 楼蘭のパスタみたいな感じって言えばわかりやすいかな? じゃあじゃあ、ナポリタンやきそばとかあるの? あくまで例えですからw; ボク食べたことあるよ おー! どうだった? 確かにこってりではあったけど、食べられないって程じゃなかったしけっこうおいしかったよ? それは市販の? あ、その時は楼蘭の人が店長やってる食堂で一回だけ食べたんだったっけ、名前忘れたけど 市販のといいますと、袋に麺と味付け用の粉とかソースの入ったものなんでしょうか? 多分ね、わかんないけど スーパーとかいったら売ってるかな? 焼きそばは確か無かったと思いますよ。少なくともわたしの地元では無かったと思う。ルインベルグには? ボクは立場上そんなに出歩いてるわけじゃないからねー、正直よくわかんない エテルネでも基本的には見かけたことはありませんけれど、ありそうなところでしたら…… どこどこ!? こんどウェンディに作ってもらう! あ、いえ、あると決まったわけではありませんけど、コニーというお店がありまして、あまり行った事は無いんですが何でも揃ってましたわ もしかしてお肉とかお野菜とかバラ売りしてるお店じゃないですか? トリア知ってるの? ベーエルデーの方にもあるんですか? うん。決まったコーナーしか行かなくて全部は知らないんですけど、あそこ品揃えは凄いんですよね。外国の珍しい食べ物とかあって おかしある? ねぇおかしは? そっちには行かないけど、多分あるんじゃないかなw おー! こんどウェンディといっしょにいくー! えーと……わたくしとしたことが若干話が逸れてしまいましたけど、機会がありましたら、今度焼きそば探してみましょうかw あ、時間大丈夫かな?w; あ、そろそろ? じかんたつの早いね はい、次のコーナーもありますし、ふつおたコーナー・サンプルはこの辺でw